package com.hongye.province.service.impl;

import java.util.ArrayList;
import java.util.List;

import com.hongye.common.core.utils.bean.BeanUtils;
import com.hongye.common.domain.FangCity;
import com.hongye.province.domain.vo.FangCityVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.hongye.province.mapper.FangCityMapper;
import com.hongye.province.service.IFangCityService;

/**
 * 城市列表Service业务层处理
 * 
 * @author ruoyi
 * @date 2025-01-09
 */
@Service
public class FangCityServiceImpl implements IFangCityService 
{
    @Autowired
    private FangCityMapper fangCityMapper;

    /**
     * 查询城市列表
     * 
     * @param id 城市列表主键
     * @return 城市列表
     */
    @Override
    public FangCity selectFangCityById(Integer id)
    {
        return fangCityMapper.selectFangCityById(id);
    }

    /**
     * 查询城市列表列表
     * 
     * @param fangCity 城市列表
     * @return 城市列表
     */
    @Override
    public List<FangCityVo> selectFangCityList(FangCity fangCity)
    {
        //查出当前省下所有的城市
        //pid 设置为0 查询城市有哪些 其次，省id前端传进来
        fangCity.setPid(0);
        List<FangCity> fangCities = fangCityMapper.selectFangCityList(fangCity);

        List<FangCityVo> fangCityVos = new ArrayList<>();

        fangCity.setProvinceId(null);
        for (FangCity city : fangCities) {
            //在根据city id 去查询 该城市下的区，然后赋值给vo类里面的区字段
            fangCity.setPid(city.getId());
            String area = fangCityMapper.selectAreaById(fangCity);
            FangCityVo fangCityVo = new FangCityVo();
            BeanUtils.copyBeanProp(fangCityVo, city);
            fangCityVo.setArea(area);
            fangCityVos.add(fangCityVo);
        }


        return fangCityVos;
    }

    /**
     * 新增城市列表
     * 
     * @param fangCity 城市列表
     * @return 结果
     */
    @Override
    public int insertFangCity(FangCity fangCity)
    {
        return fangCityMapper.insertFangCity(fangCity);
    }

    /**
     * 修改城市列表
     * 
     * @param fangCity 城市列表
     * @return 结果
     */
    @Override
    public int updateFangCity(FangCity fangCity)
    {
        return fangCityMapper.updateFangCity(fangCity);
    }

    /**
     * 批量删除城市列表
     * 
     * @param ids 需要删除的城市列表主键
     * @return 结果
     */
    @Override
    public int deleteFangCityByIds(Integer[] ids)
    {
        return fangCityMapper.deleteFangCityByIds(ids);
    }

    /**
     * 删除城市列表信息
     * 
     * @param id 城市列表主键
     * @return 结果
     */
    @Override
    public int deleteFangCityById(Integer id)
    {
        return fangCityMapper.deleteFangCityById(id);
    }
}
